/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 86187
 * Date: 2022-04-20
 * Time: 22:16
 */

//Scanner scan = new Scanner(System.in);

import java.util.Arrays;
import java.util.Scanner;

public class TestDemo4 {

    /**
     * 三种方法拷贝数组：
     * 1.Array.copyOf();-->public static int[] copyOf(int[] original, int newLength)
     *                               //返回一个新数组        要拷贝的数组     拷贝的长度
     *
     * 2.System.Arraycopy();
     * --> public static native void arraycopy(Object src,  int  srcPos , Object dest, int destPos,int length);
     *                          无返回值     //要拷贝的数组---从哪里开始拷贝   拷贝到那个数组---拷贝到数组哪个位置  拷贝的长度
     *
     * 3.clone();->返回拷贝好了的数组
     * --->产生了这个对象的一个副本  这个方法是Object 的克隆方法
     * Object 是所有类的父类 ,祖先
     *
     * 以上是浅拷贝
     * @param args
     */
    public static void main(String[] args) {
        int[] array = {1, 3, 5, 7, 9};//需要拷贝的数组

        //1.1.Array.copyOf();
        int[] arr = Arrays.copyOf(array, array.length);//拷贝数组,并返回拷贝好的新的数组
        System.out.println(Arrays.toString(arr));//将数组以字符串形式打印
        System.out.println();//换行

        //2. 2.System.Arraycopy();
        int[] ret = new int[array.length];
        System.arraycopy(array,0,ret,0,array.length);//无返回值
        System.out.println(Arrays.toString(ret));//将数组以字符串形式打印
        System.out.println();//换行

        //3.clone();
        int[] arr3 = array.clone();//返回拷贝好了的数组
        System.out.println(Arrays.toString(arr3));//将数组以字符串形式打印
        System.out.println();//换行

    }
}
